1. Field of the Invention
This invention relates to data encryption methods, and more particularly, for protection of cloud system computations by homomorphic encryption.
2. Description of the Related Art
A conventional cloud is a computation resource that is provided to a user by a provider. All cloud services and infrastructure are implemented by the provider and are hidden from the user. The clouds can be divided into three classes:
Infrastructure as a Service—the provider implements functionality of Virtual Machines (VMs) and controls the infrastructure of the VMs that can be created, modified or deleted by the client (user). A user can decide how to use the Service. An example of such system is Amazon Web Services.
Platform as a Service—the provider provides to a user a certain platform for running applications. The provider is responsible for functionality of the platform and the user only provides an application to be launched on the platform. In this case, a cloud can be used for specialized tasks or types of tasks. An example of such system is Google App Engine platform.
Software as a Service—the provider provides a complete application for performing certain tasks. In this case, the provider is responsible for servicing the infrastructure, where the service runs, and for developing the application that supports the service. Such cloud has specific narrow specialization only for a particular task. An example of such system is Gmail.
Only the first two classes allow for running user application (i.e., logic) within the cloud. Protected cloud computing is a system where operations executed within the cloud cannot be determined from outside. Also, some data needs to be securely stored within the cloud for a long time. Additionally, transferring data into the cloud needs to be protected as well.
Thus, the protected cloud computing includes the following:                secure data storage within the cloud;        secure data processing within the cloud; and        secure data transfer in and out of the cloud.        
Processing of data within the cloud is performed constantly. The cloud data often contains some critical personal data that can be accessed based on the technical limitation of the cloud. So, the only way to protect the data is to encrypt the files, so the perpetrator will not be able to read them.
Therefore, it is desired to have a system for protected cloud computing. Such system should have data in an encrypted form that cannot be read, even if the file is accessed. The data should be passed into the cloud already in the encrypted form. The encryption needs to be performed at the client site, so the cloud service does not know how the data is encrypted.
Also, the cloud should be able to process the encrypted data without decrypting it. Otherwise, the cloud becomes little more than a secure storage. Each operation on data would require sending the data back to the client for decryption and then sending the data back to the cloud for processing. Alternatively, an encryption key can be sent to the cloud for data decryption. However, this would jeopardize the data within the cloud.
Conventional cloud services do not provide completely secure data storage. In some rare cases the data can be encrypted on the client site. In other implementations the data is encrypted with the key that is stored in the same cloud. Both cases are not secure and are not convenient for efficient cloud computing. For example, personal or corporate taxes are calculated by third party services. It is obviously desired to not disclose some income information to the third parties. The personal data needs to be encrypted and sent over for processing. Then the results are received and decrypted.
Therefore, there is a need in the art to process encrypted data within the cloud without decryption. Accordingly, a method for homomorphic encryption of the cloud data is desired, so the data can be processed without decryption.